#pragma once

#include <string>
#include <boost/shared_ptr.hpp>

#include "Entity.h"

class GLSLProgram;
class GLTexture;

class Background : public Entity
{
public:
    Background(void);
    Background(const std::string& textureName);
    ~Background(void);

    virtual void onPrepare(float dT);
    virtual void onRender() const;
    virtual void onPostRender();
    virtual bool onInitialize();
    virtual void onShutdown();
    virtual void onDestroy();

private:
    std::string m_textureName;
    boost::shared_ptr<GLTexture> m_texture;
    GLuint m_vertexBuffer;
    GLuint m_texCoordBuffer;
    GLSLProgram* m_shaderProgram;

};
